home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer (Italian) 31 / PC Gamer IT CD 31 1-2.iso / DINKDEMO / dink101.exe / DINK / STORY / ITEM-FB.C < prev    next >
Text File  |  1997-10-01  |  2KB  |  126 lines

  1. //item fireball
  2.  
  3. void use( void )
  4. {
  5. //disallow diagonal fireballs for now
  6.  
  7. if (sp_dir(1, -1) == 1)
  8.     sp_dir(1, 2);
  9. if (sp_dir(1, -1) == 3)
  10.     sp_dir(1, 2);
  11. if (sp_dir(1, -1) == 7)
  12.     sp_dir(1, 8);
  13. if (sp_dir(1, -1) == 9)
  14.     sp_dir(1, 8);
  15.  
  16. &basehit = sp_dir(1, -1);
  17. &basehit += 320;
  18.  
  19. sp_seq(1, &basehit);
  20. sp_frame(1, 1); //reset seq to 1st frame
  21. sp_kill_wait(1); //make sure dink will punch right away
  22. sp_nocontrol(1, 1); //dink can't move until anim is done!
  23.  &magic_level = 0;
  24.  draw_status();
  25.  &mholdx = sp_x(1, -1);
  26.  &mholdy = sp_y(1, -1);
  27.  wait(100);
  28.  
  29.  
  30. if (sp_dir(1, -1) == 4)
  31.   {
  32.   &mholdx -= 30;
  33.   &junk = create_sprite(&mholdx, &mholdy, 11, 504, 1);
  34.   sp_seq(&junk, 504); 
  35.   sp_dir(&junk, 4);
  36.   }
  37.  
  38. if (sp_dir(1, -1) == 6)
  39.   {
  40. //  &mholdy -= 10; 
  41.   &mholdx += 30;
  42.   &junk = create_sprite(&mholdx, &mholdy, 11, 506, 1);
  43.   sp_seq(&junk, 506); 
  44.   sp_dir(&junk, 6);
  45.   }
  46.  
  47. if (sp_dir(1, -1) == 2)
  48.   {
  49.   &junk = create_sprite(&mholdx, &mholdy, 11, 502, 1);
  50.   sp_seq(&junk, 502); 
  51.   sp_dir(&junk, 2);
  52.   }
  53.  
  54. if (sp_dir(1, -1) == 8)
  55.   {
  56.   &junk = create_sprite(&mholdx, &mholdy, 11, 508, 1);
  57.   sp_seq(&junk, 508); 
  58.   sp_dir(&junk, 8);
  59.   }
  60.  
  61. //create fake shadow effect
  62. playsound(17, 8000,0,&junk,0);
  63.  
  64.   sp_timing(&junk, 0);
  65.   sp_speed(&junk, 6);
  66.   sp_strength(&junk, 10);
  67.   sp_flying(&junk, 1);
  68.   sp_script(&junk, "dam-fire");
  69.   //when the fireball hits something, it will look to this script, this way
  70.   //we can burn trees when appropriate
  71.   &mshadow = create_sprite(&mholdx, &mholdy, 15, 432, 3);
  72.   sp_brain_parm(&mshadow, &junk);
  73.   sp_que(&mshadow, -500);
  74.   //will be drawn under everything
  75.  
  76.   //set fireball to not be able to damage Dink or the shadow
  77.   sp_brain_parm(&junk, 1);
  78.   sp_brain_parm2(&junk, &mshadow);
  79. }
  80.  
  81. void disarm(void)
  82. {
  83. &magic_cost = 0;
  84. kill_this_task();
  85. }
  86.  
  87. void arm(void)
  88. {
  89. Debug("Preloading fireball");
  90.  
  91. int &basehit;
  92. int &mholdx;
  93. int &mholdy;
  94. int &junk;
  95. int &mshadow;
  96. &magic_cost = 100;
  97. preload_seq(322);
  98. preload_seq(324);
  99. preload_seq(326);
  100. preload_seq(328);
  101.  
  102. preload_seq(502);
  103. preload_seq(504);
  104. preload_seq(506);
  105. preload_seq(508);
  106. //tree burn
  107. preload_seq(20);
  108. //explosion
  109. preload_seq(70);
  110.  
  111. }
  112.  
  113. void pickup(void)
  114. {
  115. Debug("Player now owns this item.");
  116. kill_this_task();
  117. }
  118.  
  119. void drop(void)
  120. {
  121. Debug("Item dropped.");
  122. kill_this_task();
  123. }
  124.  
  125.  
  126.